Elasticsearch এ Metric Aggregation এবং Bucket Aggregation হল দুটি প্রধান ধরনের অ্যাগ্রিগেশন যা ডেটা বিশ্লেষণ এবং উপস্থাপন করতে ব্যবহৃত হয়। এগুলো Elasticsearch এর অ্যাগ্রিগেশন API এর অংশ এবং ডেটা গ্রুপিং ও মেট্রিক ক্যালকুলেশনের মাধ্যমে ডেটা বিশ্লেষণ সহজ করে। নিচে Metric এবং Bucket Aggregation এর বেসিক ধারণা এবং তাদের ব্যবহারের উদাহরণ নিয়ে আলোচনা করা হলো:
Metric Aggregation সাধারণত সংখ্যাগত ডেটা থেকে মেট্রিক্স (গড়, সর্বনিম্ন, সর্বোচ্চ, সংখ্যা, যোগফল ইত্যাদি) ক্যালকুলেট করে। এটি ডেটার উপরে নির্দিষ্ট গণনা বা পরিমাপ করে এবং একটি নির্দিষ্ট ভ্যালু প্রদান করে।
GET /sales/_search
{
"size": 0,
"aggs": {
"average_price": {
"avg": {
"field": "price"
}
}
}
}
উপরের উদাহরণে, sales
ইনডেক্সে price
ফিল্ডের উপর ভিত্তি করে গড় (average) বের করা হচ্ছে। size
0
দেওয়া হয়েছে কারণ আমরা শুধু অ্যাগ্রিগেশন রেজাল্ট পেতে চাই, ডকুমেন্ট নয়।
Bucket Aggregation ডেটা কে গ্রুপ বা bucket আকারে বিভক্ত করে, যেখানে প্রতিটি bucket কিছু নির্দিষ্ট ক্রাইটেরিয়া পূরণ করে। এক একটি bucket এ পড়া ডকুমেন্টগুলোকে একত্রিত করে পরবর্তী বিশ্লেষণ করা যায়। এটি সাধারণত ডেটাকে গ্রুপ করার জন্য ব্যবহৃত হয় এবং প্রতিটি bucket এর মধ্যে আরও সাব-অ্যাগ্রিগেশন প্রয়োগ করা যেতে পারে।
GET /sales/_search
{
"size": 0,
"aggs": {
"sales_by_category": {
"terms": {
"field": "category.keyword"
},
"aggs": {
"average_price_per_category": {
"avg": {
"field": "price"
}
}
}
}
}
}
এই উদাহরণে:
category.keyword
ফিল্ডে বিভিন্ন ইউনিক ক্যাটাগরি দ্বারা ডেটাকে গ্রুপ করছে।Elasticsearch এ অনেক সময় Metric এবং Bucket Aggregation একসাথে ব্যবহার করা হয়। প্রথমে ডেটা কে গ্রুপ (bucket) করে এবং প্রতিটি bucket এর উপরে মেট্রিক অ্যাগ্রিগেশন প্রয়োগ করে ডেটা বিশ্লেষণ করা যায়।
GET /sales/_search
{
"size": 0,
"aggs": {
"sales_over_time": {
"date_histogram": {
"field": "sale_date",
"calendar_interval": "month"
},
"aggs": {
"total_sales": {
"sum": {
"field": "amount"
}
}
}
}
}
}
এই উদাহরণে:
sale_date
ফিল্ডের উপর ভিত্তি করে প্রতি মাসের জন্য একটি bucket তৈরি করছে।Elasticsearch এর অ্যাগ্রিগেশন সিস্টেম ডেটা বিশ্লেষণ ও উপস্থাপনে অত্যন্ত কার্যকর, এবং এর মাধ্যমে ডেটা থেকে অনেক গুরুত্বপূর্ণ ইনসাইট পাওয়া সম্ভব।
আরও দেখুন...